.card-stretch {
  width: 100%;
  border-radius: 10px;
  transition: box-shadow 0.5s, transform 0.5s;
  background-color: var(--white);
  overflow: hidden;

  &:hover {
    box-shadow: 5px 20px 30px var(--gray_opacity_1);
  }

  .wrapper {
    width: 100%;
    position: relative;
  }

  .cover-box {
    position: relative;

    .cover {
      width: 100%;
      display: block;
    }

    .download-count {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      background-color: rgba(0, 0, 0, 0.2);
      color: rgba(255, 255, 255, 0.7);
      text-align: center;
      font-size: 12px;
      line-height: 18px;
    }
  }

  @width-inside: 120px;

  .inside {
    width: @width-inside;
    height: @width-inside;
    overflow: hidden;
    background-color: var(--primary_opacity_7);
    position: absolute;
    z-index: 2;
    top: -@width-inside / 2;
    right: -@width-inside / 2;
    border-radius: 0 0 @width-inside / 2 @width-inside / 2;
    transition: all 0.5s, border-radius 1.5s, top 1s;

    @size: 24px;

    .icon {
      color: var(--white);
      position: absolute;
      left: @width-inside / 4;
      bottom: @width-inside / 4;
      font-size: @size;
      transform: translate(-20%, 20%);
      transition: opacity 0.5s;
    }

    .desc {
      font-size: 14px;
      color: var(--white);
      padding: 10px 15px;
      line-height: 20px;
      transform: scale(0);
    }

    &.animate {
      width: 100%;
      height: var(--card_stretch_cover_height);
      top: 0;
      right: 0;
      border-radius: 0;

      .icon {
        opacity: 0;
        right: 15px;
        top: 15px;
      }

      .desc {
        transform: scale(1);
        transition: transform 0.5s 0.5s;
      }
    }
  }

  .foot {
    display: grid;
    grid-template-columns: 80% 20%;
    position: relative;
    transition: transform 0.5s;

    .meta {
      padding-left: 12px;
      align-items: flex-start;
    }

    time {
      font-size: 13px;
    }

    h2 {
      font-size: 17px;
      line-height: 21px;
      color: var(--gray_1);
      margin-top: 6px;
    }

    .btn {
      background-color: var(--gray_7);
      transition: background-color 0.5s;
      cursor: pointer;

      .icon {
        font-size: 28px;
        color: var(--gray_1);
        transition: transform 0.5s, color 0.5s;
        transform: translateY(-3px);
      }

      &:hover {
        background-color: var(--primary);

        .icon {
          transform: translateY(0);
          color: var(--white);
        }
      }
    }

    .more {
      min-height: 80px;
    }

    .box {
      position: absolute;
      left: 100%;
      top: 0;
      width: 100%;
      height: 100%;
      display: grid;
      grid-template-columns: 20% 80%;
    }

    .handle {
      width: 50%;
      height: 100%;
      cursor: pointer;
      position: relative;
      color: var(--gray_4);

      .icon {
        font-size: 18px;
      }

      span {
        font-size: 14px;
        margin-top: 4px;
      }

      &:hover {
        color: var(--primary);
      }

      &:first-child {
        &::after {
          content: '';
          position: absolute;
          right: 0;
          top: 50%;
          transform: translateY(-50%);
          width: 1px;
          height: 30px;
          background-color: var(--gray_4);
        }
      }
    }

    &.show {
      transform: translateX(-100%);
    }

    .layout-small & {
      .more {
        min-height: 70px;
      }
    }
  }
}
